From 19d852948654c15d9865ffa337d17332d0793893 Mon Sep 17 00:00:00 2001 From: "kaf24@scramble.cl.cam.ac.uk" Date: Tue, 10 Aug 2004 21:04:26 +0000 Subject: [PATCH] bitkeeper revision 1.1159.17.5 (4119385aTLA7Shj5_vrBcoAQ3-zimg) Cset exclude: gm281@boulderdash.cl.cam.ac.uk|ChangeSet|20040810153437|54233 --- tools/examples/xmdefaults | 4 ---- tools/examples/xmexample | 4 ---- tools/libxc/xc.h | 1 - tools/libxc/xc_domain.c | 3 --- tools/python/xen/lowlevel/xc/xc.c | 13 +++++-------- tools/python/xen/xend/XendDomainInfo.py | 5 +---- tools/python/xen/xm/create.py | 7 +------ xen/arch/x86/smpboot.c | 2 +- xen/common/dom0_ops.c | 4 ++-- xen/common/domain.c | 6 +++--- xen/common/kernel.c | 2 +- xen/common/sched_atropos.c | 6 ++---- xen/common/sched_bvt.c | 9 +++------ xen/common/sched_fair_bvt.c | 9 +++------ xen/common/sched_rrobin.c | 7 +++---- xen/common/schedule.c | 4 ++-- xen/include/hypervisor-ifs/dom0_ops.h | 2 +- xen/include/xen/sched-if.h | 2 +- xen/include/xen/sched.h | 4 ++-- 19 files changed, 31 insertions(+), 63 deletions(-) diff --git a/tools/examples/xmdefaults b/tools/examples/xmdefaults index 0c1f52b69d..0b7c5b2230 100644 --- a/tools/examples/xmdefaults +++ b/tools/examples/xmdefaults @@ -25,10 +25,6 @@ name = "ExampleDomain" # Which CPU to start domain on? #cpu = -1 # leave to Xen to pick -# The weight (CPU share) of the domain. Works with all -# schedulers that have notion of weight (eg BVT). -# Default is 1. Float values can be used. -#weight = 1.5 #---------------------------------------------------------------------------- # Define network interfaces. diff --git a/tools/examples/xmexample b/tools/examples/xmexample index b8717fb29a..d6df731c45 100644 --- a/tools/examples/xmexample +++ b/tools/examples/xmexample @@ -55,10 +55,6 @@ name = "VM%d" % vmid # Which CPU to start domain on? #cpu = -1 # leave to Xen to pick cpu = vmid # set based on vmid (mod number of CPUs) -# The weight (CPU share) of the domain. Works with all -# schedulers that have notion of weight (eg BVT). -# Default is 1. Float values can be used. -#weight = 1.5 #---------------------------------------------------------------------------- # Define network interfaces. diff --git a/tools/libxc/xc.h b/tools/libxc/xc.h index d44c1942f5..b2cf0c67ba 100644 --- a/tools/libxc/xc.h +++ b/tools/libxc/xc.h @@ -48,7 +48,6 @@ int xc_domain_create(int xc_handle, unsigned int mem_kb, const char *name, int cpu, - float weight, u32 *pdomid); int xc_domain_pause(int xc_handle, u32 domid); diff --git a/tools/libxc/xc_domain.c b/tools/libxc/xc_domain.c index 41bff1fe5f..10017c74fe 100644 --- a/tools/libxc/xc_domain.c +++ b/tools/libxc/xc_domain.c @@ -12,7 +12,6 @@ int xc_domain_create(int xc_handle, unsigned int mem_kb, const char *name, int cpu, - float weight, u32 *pdomid) { int err; @@ -21,8 +20,6 @@ int xc_domain_create(int xc_handle, op.cmd = DOM0_CREATEDOMAIN; op.u.createdomain.domain = (domid_t)*pdomid; op.u.createdomain.memory_kb = mem_kb; - /* The weight of a domain added to the domain creation code */ - op.u.createdomain.weight = weight; strncpy(op.u.createdomain.name, name, MAX_DOMAIN_NAME); op.u.createdomain.name[MAX_DOMAIN_NAME-1] = '\0'; op.u.createdomain.cpu = cpu; diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c index d2a12026ef..4b5a426b55 100644 --- a/tools/python/xen/lowlevel/xc/xc.c +++ b/tools/python/xen/lowlevel/xc/xc.c @@ -44,19 +44,16 @@ static PyObject *pyxc_domain_create(PyObject *self, unsigned int mem_kb = 0; char *name = "(anon)"; int cpu = -1; - float weight; u32 dom = 0; int ret; - static char *kwd_list[] = { "dom", "mem_kb", "name", "cpu", "weight", - NULL }; + static char *kwd_list[] = { "dom", "mem_kb", "name", "cpu", NULL }; - if ( !PyArg_ParseTupleAndKeywords(args, kwds, "|iisif", kwd_list, - &dom, &mem_kb, &name, &cpu, &weight) ) + if ( !PyArg_ParseTupleAndKeywords(args, kwds, "|iisi", kwd_list, + &dom, &mem_kb, &name, &cpu) ) return NULL; - - if ( (ret = xc_domain_create(xc->xc_handle, mem_kb, name, cpu, - weight, &dom)) < 0 ) + + if ( (ret = xc_domain_create(xc->xc_handle, mem_kb, name, cpu, &dom)) < 0 ) return PyErr_SetFromErrno(xc_error); return PyInt_FromLong(dom); diff --git a/tools/python/xen/xend/XendDomainInfo.py b/tools/python/xen/xend/XendDomainInfo.py index 6032f6919d..0df3c2208a 100644 --- a/tools/python/xen/xend/XendDomainInfo.py +++ b/tools/python/xen/xend/XendDomainInfo.py @@ -486,7 +486,6 @@ class XendDomainInfo: self.config = config try: self.name = sxp.child_value(config, 'name') - self.weight = float(sxp.child_value(config, 'weight')) self.check_name(self.name) self.memory = int(sxp.child_value(config, 'memory')) if self.memory is None: @@ -706,10 +705,9 @@ class XendDomainInfo: return memory = self.memory name = self.name - weight = self.weight cpu = int(sxp.child_value(self.config, 'cpu', '-1')) dom = self.dom or 0 - dom = xc.domain_create(dom= dom, mem_kb= memory * 1024, name= name, cpu= cpu, weight= weight) + dom = xc.domain_create(dom= dom, mem_kb= memory * 1024, name= name, cpu= cpu) if dom <= 0: raise VmError('Creating domain failed: name=%s memory=%d' % (name, memory)) @@ -1139,7 +1137,6 @@ add_device_handler('pci', vm_dev_pci) add_config_handler('name', vm_field_ignore) add_config_handler('memory', vm_field_ignore) add_config_handler('cpu', vm_field_ignore) -add_config_handler('weight', vm_field_ignore) add_config_handler('console', vm_field_ignore) add_config_handler('image', vm_field_ignore) add_config_handler('device', vm_field_ignore) diff --git a/tools/python/xen/xm/create.py b/tools/python/xen/xm/create.py index f28f203849..286e1d3478 100644 --- a/tools/python/xen/xm/create.py +++ b/tools/python/xen/xm/create.py @@ -97,10 +97,6 @@ gopts.var('memory', val='MEMORY', fn=set_value, default=128, use="Domain memory in MB.") -gopts.var('weight', val='WEIGHT', - fn=set_value, default=1, - use="Domain cpu weight (default=1).") - gopts.var('console', val='PORT', fn=set_int, default=None, use="Console port to use. Default is 9600 + domain id.") @@ -299,8 +295,7 @@ def make_config(vals): config = ['vm', ['name', vals.name ], - ['memory', vals.memory ], - ['weight', vals.weight] ] + ['memory', vals.memory ] ] if vals.cpu: config.append(['cpu', vals.cpu]) if vals.blkif: diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c index da4130f34e..bd9c0951ec 100644 --- a/xen/arch/x86/smpboot.c +++ b/xen/arch/x86/smpboot.c @@ -650,7 +650,7 @@ static void __init do_boot_cpu (int apicid) cpu = ++cpucount; - if ( (idle = do_createdomain(IDLE_DOMAIN_ID, cpu, 0)) == NULL ) + if ( (idle = do_createdomain(IDLE_DOMAIN_ID, cpu)) == NULL ) panic("failed 'createdomain' for CPU %d", cpu); set_bit(DF_IDLETASK, &idle->flags); diff --git a/xen/common/dom0_ops.c b/xen/common/dom0_ops.c index e31d0a6025..0a4086ef6e 100644 --- a/xen/common/dom0_ops.c +++ b/xen/common/dom0_ops.c @@ -182,9 +182,9 @@ long do_dom0_op(dom0_op_t *u_dom0_op) pro = op->u.createdomain.cpu % smp_num_cpus; ret = -ENOMEM; - if ( (d = do_createdomain(dom, pro, op->u.createdomain.weight))==NULL) + if ( (d = do_createdomain(dom, pro)) == NULL ) break; - + if ( op->u.createdomain.name[0] ) { strncpy(d->name, op->u.createdomain.name, MAX_DOMAIN_NAME); diff --git a/xen/common/domain.c b/xen/common/domain.c index 3f3f876111..cac4c2edf0 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -22,7 +22,7 @@ rwlock_t tasklist_lock __cacheline_aligned = RW_LOCK_UNLOCKED; struct domain *task_hash[TASK_HASH_SIZE]; struct domain *task_list; -struct domain *do_createdomain(domid_t dom_id, unsigned int cpu, float weight) +struct domain *do_createdomain(domid_t dom_id, unsigned int cpu) { char buf[100]; struct domain *d, **pd; @@ -69,7 +69,7 @@ struct domain *do_createdomain(domid_t dom_id, unsigned int cpu, float weight) spin_lock_init(&d->pcidev_lock); INIT_LIST_HEAD(&d->pcidev_list); - sched_add_domain(d, weight); + sched_add_domain(d); write_lock_irqsave(&tasklist_lock, flags); pd = &task_list; /* NB. task_list is maintained in order of dom_id. */ @@ -85,7 +85,7 @@ struct domain *do_createdomain(domid_t dom_id, unsigned int cpu, float weight) else { sprintf(d->name, "Idle-%d", cpu); - sched_add_domain(d, weight); + sched_add_domain(d); } return d; diff --git a/xen/common/kernel.c b/xen/common/kernel.c index 0e0b240b79..6a39946d70 100644 --- a/xen/common/kernel.c +++ b/xen/common/kernel.c @@ -306,7 +306,7 @@ void cmain(multiboot_info_t *mbi) task_hash[TASK_HASH(IDLE_DOMAIN_ID)] = &idle0_task; /* Create initial domain 0. */ - new_dom = do_createdomain(0, 0, 1); + new_dom = do_createdomain(0, 0); if ( new_dom == NULL ) panic("Error creating domain 0\n"); diff --git a/xen/common/sched_atropos.c b/xen/common/sched_atropos.c index b93ea89dd9..53e4519b9f 100644 --- a/xen/common/sched_atropos.c +++ b/xen/common/sched_atropos.c @@ -167,10 +167,8 @@ static void requeue(struct domain *sdom) * - they shouldn't be on any queue */ } -/* prepare a task to be added to scheduling - TODO - can weight argument can be used to set up the - scheduling parameters? */ -static void at_add_task(struct domain *p, float weight) +/* prepare a task to be added to scheduling */ +static void at_add_task(struct domain *p) { s_time_t now = NOW(); diff --git a/xen/common/sched_bvt.c b/xen/common/sched_bvt.c index 25e71f0e4d..e4ee214b54 100644 --- a/xen/common/sched_bvt.c +++ b/xen/common/sched_bvt.c @@ -180,16 +180,13 @@ int bvt_alloc_task(struct domain *p) /* * Add and remove a domain */ -void bvt_add_task(struct domain *p, float weight) +void bvt_add_task(struct domain *p) { struct bvt_dom_info *inf = BVT_INFO(p); ASSERT(inf != NULL); ASSERT(p != NULL); - if(weight > 0) - inf->mcu_advance = MCU_ADVANCE / weight; - else - inf->mcu_advance = MCU_ADVANCE; + inf->mcu_advance = MCU_ADVANCE; inf->domain = p; inf->warpback = 0; /* Set some default values here. */ @@ -227,7 +224,7 @@ int bvt_init_idle_task(struct domain *p) if(bvt_alloc_task(p) < 0) return -1; - bvt_add_task(p, 0); + bvt_add_task(p); spin_lock_irqsave(&CPU_INFO(p->processor)->run_lock, flags); diff --git a/xen/common/sched_fair_bvt.c b/xen/common/sched_fair_bvt.c index 3e027f8706..165c128753 100644 --- a/xen/common/sched_fair_bvt.c +++ b/xen/common/sched_fair_bvt.c @@ -152,17 +152,14 @@ int fbvt_alloc_task(struct domain *p) /* * Add and remove a domain */ -void fbvt_add_task(struct domain *p, float weight) +void fbvt_add_task(struct domain *p) { struct fbvt_dom_info *inf = FBVT_INFO(p); ASSERT(inf != NULL); ASSERT(p != NULL); - if(weight > 0) - inf->mcu_advance = MCU_ADVANCE / weight; - else - inf->mcu_advance = MCU_ADVANCE; + inf->mcu_advance = MCU_ADVANCE; inf->domain = p; if ( p->domain == IDLE_DOMAIN_ID ) { @@ -190,7 +187,7 @@ int fbvt_init_idle_task(struct domain *p) if(fbvt_alloc_task(p) < 0) return -1; - fbvt_add_task(p, 0); + fbvt_add_task(p); spin_lock_irqsave(&CPU_INFO(p->processor)->run_lock, flags); set_bit(DF_RUNNING, &p->flags); if ( !__task_on_runqueue(p) ) diff --git a/xen/common/sched_rrobin.c b/xen/common/sched_rrobin.c index 28b0f73fa8..2ab5604fb5 100644 --- a/xen/common/sched_rrobin.c +++ b/xen/common/sched_rrobin.c @@ -101,9 +101,8 @@ static int rr_alloc_task(struct domain *d) return 0; } -/* Setup the rr_dom_info - The weight argument is ignored as RRobin does not use weights */ -static void rr_add_task(struct domain *p, float weight) +/* Setup the rr_dom_info */ +static void rr_add_task(struct domain *p) { struct rrobin_dom_info *inf; RR_INFO(p)->domain = p; @@ -122,7 +121,7 @@ static int rr_init_idle_task(struct domain *p) { unsigned long flags; if(rr_alloc_task(p) < 0) return -1; - rr_add_task(p, 0); + rr_add_task(p); spin_lock_irqsave(&run_locks[p->processor], flags); set_bit(DF_RUNNING, &p->flags); diff --git a/xen/common/schedule.c b/xen/common/schedule.c index b37635324b..d2778e09ed 100644 --- a/xen/common/schedule.c +++ b/xen/common/schedule.c @@ -123,7 +123,7 @@ struct domain *alloc_domain_struct(void) /* * Add and remove a domain */ -void sched_add_domain(struct domain *d, float weight) +void sched_add_domain(struct domain *d) { /* Must be unpaused by control software to start execution. */ set_bit(DF_CTRLPAUSE, &d->flags); @@ -141,7 +141,7 @@ void sched_add_domain(struct domain *d, float weight) schedule_data[d->processor].idle = d; } - SCHED_OP(add_task, d, weight); + SCHED_OP(add_task, d); TRACE_2D(TRC_SCHED_DOM_ADD, d->domain, d); } diff --git a/xen/include/hypervisor-ifs/dom0_ops.h b/xen/include/hypervisor-ifs/dom0_ops.h index cef857f5e5..8cea03fac2 100644 --- a/xen/include/hypervisor-ifs/dom0_ops.h +++ b/xen/include/hypervisor-ifs/dom0_ops.h @@ -55,7 +55,7 @@ typedef struct { MEMORY_PADDING; u8 name[MAX_DOMAIN_NAME]; /* 8 */ u32 cpu; /* 24 */ - float weight; /* 28 */ + u32 __pad0; /* 28 */ /* IN/OUT parameters. */ /* If 0, domain is allocated. If non-zero use it unless in use. */ domid_t domain; /* 32 */ diff --git a/xen/include/xen/sched-if.h b/xen/include/xen/sched-if.h index 9088e61733..15f992614a 100644 --- a/xen/include/xen/sched-if.h +++ b/xen/include/xen/sched-if.h @@ -38,7 +38,7 @@ struct scheduler int (*init_scheduler) (); int (*init_idle_task) (struct domain *); int (*alloc_task) (struct domain *); - void (*add_task) (struct domain *, float weight); + void (*add_task) (struct domain *); void (*free_task) (struct domain *); void (*rem_task) (struct domain *); void (*sleep) (struct domain *); diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h index 3b8ad6c58b..06b6faf6cc 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -171,7 +171,7 @@ static inline int get_domain(struct domain *d) } extern struct domain *do_createdomain( - domid_t dom_id, unsigned int cpu, float weight); + domid_t dom_id, unsigned int cpu); extern int construct_dom0(struct domain *d, unsigned long alloc_start, unsigned long alloc_end, @@ -198,7 +198,7 @@ extern unsigned long wait_init_idle; #define set_current_state(_s) do { current->state = (_s); } while (0) void scheduler_init(void); void schedulers_start(void); -void sched_add_domain(struct domain *d, float weight); +void sched_add_domain(struct domain *d); void sched_rem_domain(struct domain *d); long sched_ctl(struct sched_ctl_cmd *); long sched_adjdom(struct sched_adjdom_cmd *); -- 2.30.2